TRACE_SOFTIRQ does not appear to be necessary at all.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
panic("GENERAL PROTECTION FAULT\n[error_code=%04x]\n", regs->error_code);
}
-static void nmi_softirq(void)
+static void nmi_action(unsigned long unused)
{
/* Only used to defer wakeup of dom0,vcpu0 to a safe (non-NMI) context. */
vcpu_kick(dom0->vcpu[0]);
}
+static DECLARE_TASKLET(nmi_tasklet, nmi_action, 0);
+
static void nmi_dom0_report(unsigned int reason_idx)
{
struct domain *d;
set_bit(reason_idx, nmi_reason(d));
if ( !test_and_set_bool(v->nmi_pending) )
- raise_softirq(NMI_SOFTIRQ); /* not safe to wake up a vcpu here */
+ tasklet_schedule(&nmi_tasklet); /* not safe to wake a vcpu here */
}
asmlinkage void mem_parity_error(struct cpu_user_regs *regs)
percpu_traps_init();
cpu_init();
-
- open_softirq(NMI_SOFTIRQ, nmi_softirq);
}
long register_guest_nmi_callback(unsigned long address)
static unsigned char keypress_key;
-static void keypress_softirq(void)
+static void keypress_action(unsigned long unused)
{
keyhandler_t *h;
unsigned char key = keypress_key;
console_end_log_everything();
}
+static DECLARE_TASKLET(keypress_tasklet, keypress_action, 0);
+
void handle_keypress(unsigned char key, struct cpu_user_regs *regs)
{
irq_keyhandler_t *h;
else
{
keypress_key = key;
- raise_softirq(KEYPRESS_SOFTIRQ);
+ tasklet_schedule(&keypress_tasklet);
}
}
void __init initialize_keytable(void)
{
- open_softirq(KEYPRESS_SOFTIRQ, keypress_softirq);
-
register_irq_keyhandler(
'd', dump_registers, "dump registers");
register_keyhandler(
/* which tracing events are enabled */
static u32 tb_event_mask = TRC_ALL;
-static void trace_notify_guest(void)
-{
- send_guest_global_virq(dom0, VIRQ_TBUF);
-}
-
-
/**
* alloc_trace_bufs - performs initialization of the per-cpu trace buffers.
*
}
t_buf_highwater = data_size >> 1; /* 50% high water */
- open_softirq(TRACE_SOFTIRQ, trace_notify_guest);
return 0;
}
/* Notify trace buffer consumer that we've crossed the high water mark. */
if ( started_below_highwater &&
(calc_unconsumed_bytes(buf) >= t_buf_highwater) )
- raise_softirq(TRACE_SOFTIRQ);
+ send_guest_global_virq(dom0, VIRQ_TBUF);
}
/*
TIMER_SOFTIRQ = 0,
SCHEDULE_SOFTIRQ,
NEW_TLBFLUSH_CLOCK_PERIOD_SOFTIRQ,
- KEYPRESS_SOFTIRQ,
- NMI_SOFTIRQ,
PAGE_SCRUB_SOFTIRQ,
- TRACE_SOFTIRQ,
RCU_SOFTIRQ,
STOPMACHINE_SOFTIRQ,
TASKLET_SOFTIRQ,